Jazz Jack Rabitt "pixel-morphing"

The following article was originally taken from the usenet group rec.games.programmer.

: and I gotta know what's going on when you select the difficulty level
: (you've all seen it, when the innocent bunny turns into Cujo-rabbit)...
: How was that done...

What you do is set up a mapping between the starting and ending bitmaps. Every pixel in the source bitmap corresponds to a pixel in the destination bitmap. This can be done randomly, just be sure that each pixel has a unique partner. To do the morphing part, you move the pixels form their source position to their destination position in multiple steps. Pick as many as you like. The colr can be handled in different ways, depending on what your colors are like. If you have any color ramps set up or are in 24 bit mode, the colors can smoothly interpolate just like the positions do. Otherwise, you can just change the colors when the pixels are halfway to their new positions.